﻿
    using System;
/// <summary>
/// sql表的特性  用来判断 数据类的 哪些属性不被添加到表中
/// 必须给属性添加这个特性 属性才能够被添加到数据库表中
/// </summary>
    public class ModelHelp: Attribute
    {
        ///是否可以创建
        public bool IsCreated { get; set; }
        ///如果可以创建的话 对应到数据库中的名字
        public string FieldName{ get; set; }
        ///属性对应的数据结构类型
        public string Type{ get; set; }
        /// 是否为主键
        public bool IsPrimaryKey{ get; set; }

        public bool IsCanNull;
        
        ///使用 属性本身的名字和类型
        public bool useProperticeDefault;
      
       /// <summary>
       /// sqlite表的特性  用来判断 数据类的 哪些属性不被添加到表中
       /// </summary>
       /// <param name="isCreated">是否可以创建</param>
       /// <param name="fieldName">对应到数据库中的名字</param>
       /// <param name="type">属性对应的数据结构类型</param>
       /// <param name="isPrimaryKey">是否为主键</param>
       /// <param name="isCanNull">是否可以为空</param>
        public ModelHelp(bool isCreated, string fieldName, string type, bool isPrimaryKey=false,bool isCanNull=false)
        {
            IsCreated = isCreated;
            FieldName = fieldName;
            Type = type;
            IsPrimaryKey = isPrimaryKey;
            IsCanNull = isCanNull;
        }
       /// <summary>
       /// sqlite表的特性  用来判断 数据类的 哪些属性不被添加到表中
       /// 存储到数据库的表中数据 将使用属性本身的名字和属性类型  比如 string Name{get;set;}  名字是 Name  Type是string
       /// </summary>
       /// <param name="isCreated">是否可以创建 如果为false 将不会被创建到表中 </param>
       public ModelHelp(bool isCreated)
       {
           IsCreated = isCreated;
           if(isCreated)
              useProperticeDefault = true;
       }
       /// <summary>
       /// 默认使用 属性的名称 创建成对应的数据名
       /// </summary>
       public ModelHelp()
       {
           IsCreated = true;
           useProperticeDefault = true;
       }
    }
